<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
 lang="en" dir="ltr">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" href="../codebase/default.css" type="text/css" media="screen" title="no title" charset="utf-8"><title>
    dhtmlxconnector:security    [Skin test wiki]
  </title></head>

<body>
<div class="dokuwiki">
  
  <div class="stylehead">

    <div class="header">
    <a class="logo" href="http://dhtmlx.com" title="DHTMLX Documentation homepage"></a>
    <span class="tittle-dhtmlx">DHTMLX Docs & Samples Explorer</span>

    <div class="search-field">
        <form action="http://dhtmlx.com/dhxdocs/doku.php" accept-charset="utf-8" id="dw__search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" title="Search" /><button type="submit"></button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>    </div>
        <div class="buttons">
                <a class="doc"></a>
                <a title="DHTMLX Samples homepage" href="../samples.html" class="sample"/></a>
        </div>
     <!-- <div class="pagename">
        [[<a href="#"  title="Backlinks">dhtmlxconnector:security</a>]]
      </div>
      <div class="logo">
        <a href="/dhtmlx/_lab/wiki/doku.php"  name="dokuwiki__top" id="dokuwiki__top" accesskey="h" title="[H]">Skin test wiki</a>      </div>

      <div class="clearer"></div>-->
        
    </div>

    
<!--   <div class="bar" id="bar__top">
      <div class="bar-left" id="bar__topleft">
                <form class="button btn_revs" method="get" action="http://dhtmlx.com/dhxdocs/doku.php"><div class="no"><input type="hidden" name="do" value="revisions" /><input type="hidden" name="id" value="dhtmlxconnector:security" /><input type="submit" value="Old revisions" class="button" accesskey="o" title="Old revisions [O]" /></div></form>      </div>

      <div class="bar-right" id="bar__topright">
        <form class="button btn_recent" method="get" action="http://dhtmlx.com/dhxdocs/doku.php"><div class="no"><input type="hidden" name="do" value="recent" /><input type="hidden" name="id" value="dhtmlxconnector:security" /><input type="submit" value="Recent changes" class="button" accesskey="r" title="Recent changes [R]" /></div></form>        <form action="http://dhtmlx.com/dhxdocs/doku.php" accept-charset="utf-8" id="dw__search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" title="Search" /><button type="submit"></button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>&nbsp;
      </div>

      <div class="clearer"></div>
    </div> -->

<!--        <div class="breadcrumbs">
      <span class="bchead">Trace:</span> <span class="bcsep">&raquo;</span> <span class="curid"><a href="/dhtmlx/_lab/wiki/doku.php?id=dhtmlxconnector:security"  class="breadcrumbs" title="dhtmlxconnector:security">security</a></span>    </div>
    -->

    
  </div>
  
  
  <div class="page">
    <!-- wikipage start -->
    
<p>
<div class='backlinks'><div class='backlink last_backlink'><img src="icons___file.gif"  class="media" alt="" /><a href="../index.html" class="wikilink1" title="start">Index</a></div><div class='arrow'></div><div class='backlink last_backlink'><img src="icons___connector.gif"  class="media" alt="" /><a href="index.html" class="wikilink1" title="dhtmlxconnector:toc">dhtmlxconnector</a></div><div class='arrow'></div><div class='backlink'><span class="curid"><a href="dhtmlxconnector___security.html" class="wikilink1" title="dhtmlxconnector:security">  Security  </a></span></div></div>

</p>

<h2><a name="security" id="security">Security</a></h2>
<div class="level2">

<p>
dhtmlxConnector is open to external access of another programs that&#039;s why any external user is allowed to change data in DB, thus adding some kind of session based authentication is strongly recommended.
Built in security manager allows to limit connector for certain operations only.
</p>
<pre class="code javascript">    $gridConn<span class="sy0">-&gt;</span>access<span class="sy0">-&gt;</span>deny<span class="br0">&#40;</span><span class="st0">&quot;read&quot;</span><span class="br0">&#41;</span>; <span class="co1">//blocks Select action</span>
    $gridConn<span class="sy0">-&gt;</span>access<span class="sy0">-&gt;</span>deny<span class="br0">&#40;</span><span class="st0">&quot;add&quot;</span><span class="br0">&#41;</span>; <span class="co1">//blocks Insert action</span>
    $gridConn<span class="sy0">-&gt;</span>access<span class="sy0">-&gt;</span>deny<span class="br0">&#40;</span><span class="st0">&quot;edit&quot;</span><span class="br0">&#41;</span>; <span class="co1">//blocks Update action</span>
    $gridConn<span class="sy0">-&gt;</span>access<span class="sy0">-&gt;</span>deny<span class="br0">&#40;</span><span class="st0">&quot;delete&quot;</span><span class="br0">&#41;</span>; <span class="co1">//blocks Delete action</span></pre>
<p>
By default connector allows all for types operation. 
</p>

</div>

<h3><a name="transactions" id="transactions">Transactions</a></h3>
<div class="level3">

<p>

Grid allow to use transactions , for data create|update|delete operations ( be sure that used DB engine has support for transactions ). They can be enabled as

</p>
<pre class="code php">    <span class="re0">$conn</span><span class="sy0">-&gt;</span><span class="me1">sql</span><span class="sy0">-&gt;</span><span class="me1">set_transaction_mode</span><span class="br0">&#40;</span><span class="st0">&quot;global&quot;</span><span class="br0">&#41;</span>;
or 
    <span class="re0">$conn</span><span class="sy0">-&gt;</span><span class="me1">sql</span><span class="sy0">-&gt;</span><span class="me1">set_transaction_mode</span><span class="br0">&#40;</span><span class="st0">&quot;record&quot;</span><span class="br0">&#41;</span>;</pre>
</div>

<h4><a name="global_transaction_mode" id="global_transaction_mode">global transaction mode</a></h4>
<div class="level4">
<ul>
<li class="level1"><div class="li"> Component uses single transaction for all records inside single request. </div>
</li>
<li class="level1"><div class="li"> If any operation fails - all record operations will be rolled back, all updated rows will be returned with error status</div>
</li>
<li class="level1"><div class="li"> If custom validation was assigned and block any record - all records inside request will be blocked</div>
</li>
</ul>

</div>

<h4><a name="record_transaction_mode" id="record_transaction_mode">record transaction mode</a></h4>
<div class="level4">
<ul>
<li class="level1"><div class="li"> Component uses separate transactions for each record in request</div>
</li>
<li class="level1"><div class="li"> If any operation fails, it will not affect other operations</div>
</li>
</ul>

</div>

    <!-- wikipage stop -->
  </div>

  <div class="clearer">&nbsp;</div>

  
  <div class="stylefoot">

    <div class="meta">
      <div class="user">
              </div>
     <!-- <div class="doc">
        dhtmlxconnector/security.txt &middot; Last modified: 2009/07/30 12:56 (external edit)      </div>
    </div>-->

   
    <!--<div class="bar" id="bar__bottom">-->
      <!--<div class="bar-left" id="bar__bottomleft">-->
        <!---->
        <!--<form class="button btn_revs" method="get" action="http://dhtmlx.com/dhxdocs/doku.php"><div class="no"><input type="hidden" name="do" value="revisions" /><input type="hidden" name="id" value="dhtmlxconnector:security" /><input type="submit" value="Old revisions" class="button" accesskey="o" title="Old revisions [O]" /></div></form>-->
      <!--</div>-->
      <!--<div class="bar-right" id="bar__bottomright">-->
        <!---->
        <!---->
        <!---->
        <!---->
        <!--<form class="button btn_login" method="get" action="http://dhtmlx.com/dhxdocs/doku.php"><div class="no"><input type="hidden" name="do" value="login" /><input type="hidden" name="sectok" value="7fa0fd48989c1aacd5ed76900d413e62" /><input type="hidden" name="id" value="dhtmlxconnector:security" /><input type="submit" value="Login" class="button" title="Login" /></div></form>-->
        <!--<form class="button btn_index" method="get" action="http://dhtmlx.com/dhxdocs/doku.php"><div class="no"><input type="hidden" name="do" value="index" /><input type="hidden" name="id" value="dhtmlxconnector:security" /><input type="submit" value="Index" class="button" accesskey="x" title="Index [X]" /></div></form>-->
        <!--<a class="nolink" href="#dokuwiki__top"><input type="button" class="button" value="Back to top" onclick="window.scrollTo(0, 0)" title="Back to top" /></a>&nbsp;-->
      <!--</div>-->
      <!--<div class="clearer"></div>-->
    <!--</div>-->

  </div>

  

</div>

<div class="footerinc">


</div>

<div class="no"><img src="/dhtmlx/_lab/wiki/lib/exe/indexer.php?id=dhtmlxconnector%3Asecurity&amp;1257950919" width="1" height="1" alt=""  /></div>
     <div class="footer">
        <div class="footer-logo"></div>
        <div class="copyright">Copyright © 1998-2009 DHTMLX LTD.<br />All rights reserved.</div>
            	    </div>
</body>
</html>
